// Результат добавления статистики к сессии построения статистики.
SpicAddonStatisticsResult
{
// Статус операции.
SpicStatisticsOperationResult Status
// Сообщение об ошибке.
string ErrorText
}
// Результат построения конкретной статистики,
// которая должна отдаваться из менеджера построения статистики.
// Является частью запроса.
SpicConcreteStatisticsResult
{
// Информация о ходе построения конкретной статистики.
SpicStatisticsChunkInfo ChunkInfo
// Конкретная статистика. Если не получилось построить - null.
IStatistics Statistics
}
// Информация о построении конкретной статистики.
SpicStatisticsChunkInfo
{
// Период данной порции статистики.
SpicDateTimeRange Period
// Порядковый номер.
int ChunkNumber
// Является ли данная порция статистики последней.
bool IsFinalChunk
// Состояние задачи.
SpicStatisticsOperationResult Status
// Описание ошибки.
string ErrorText
}
// Идентификатор сессии построения статистики В СПИК.
SpicStatisticsSession
{
// Токен сессии.
Guid StatisticsSessionId
}
// Запрос на открытие сессии для построения статистики.
SpicStatisticsSessionRequest
{
// Период построения статистики.
SpicDateTimeRange Period
// Объект, по которому хотим строить статистику.
SpicObjectIdentity TargetObject
}
// Результат открытия сессия для построения статистики.
SpicStatisticsSessionResponse
{
// Сессия.
SpicStatisticsSession Session
// Состояние ответа.
SpicStatisticsOperationResult OperationResult
}
// Состояние выполнения операции при построении статистик
SpicStatisticsOperationResult
{
string Value
}
Параметр Value может принимать следующие значения:
// Набор статистик по дискретным датчикам
SpicDiscreteSensorsStatistics
{
// Статистики
SpicDiscreteSensorStatistics[] Sensors
}
// Результат запроса статистики
SpicDiscreteSensorsStatisticsResult
{
// Информация о состоянии построения порции статистик
SpicStatisticsChunkInfo ChunkInfo
// Статистика. Если не получилось построить - null.
SpicDiscreteSensorsStatistics Statistics
}
// Статистика по одному сенсору. Каждому Points соответствует определенный дискретный датчик из карточки объекта. Например, если в карточке объекта первым дискретным датчиком указан Зажигание, то в ответе от СПИК он будет соответствовать первой выдаче Points.
SpicDiscreteSensorStatistics
{
// Набор точек
SpicDiscreteSensorValuePoint[] Points
}
// Точка статистики по дискретному датчику
SpicDiscreteSensorValuePoint
{
// Момент получения значения
DateTime Timestamp
// Значение
bool Value
}
// Точка статистики по аналоговому датчику
SpicAnalogSensorValuePoint
{
// Момент получения значения
DateTime Timestamp
// Значение
double Value
}
// Статистика по расходу топлива
SpicFuelFlowStatistics
{
// Набор статистик по датчикам расхода топлива
SpicFuelFlowStatisticsSensor[] Sensors
// Суммарная статистика
SpicFuelFlowStatisticsSensor Summary
}
// Результат запроса статистик
SpicFuelFlowStatisticsResult
{
// Информация о состоянии построения порции статистик
SpicStatisticsChunkInfo ChunkInfo
// Статистика. Если не получилось построить - null.
SpicFuelFlowStatistics Statistics
}
// Статистика по датчику расхода топлива
SpicFuelFlowStatisticsSensor
{
// Номер датчика
int SensorNumber
// Имя датчика
string SensorTitle
// Потребление за время движения, в литрах
double? MovementConsumptionL
// Потребление топлива за время активной работы двигателя, в литрах
double? EngineActiveWorkConsumptionL
// Потребление топлива за время холостой работы двигателя, в литрах
double? EngineIdleConsumptionL
// Общее потребление топлива, в литрах
double? TotalConsumptionVolumeL
// Общее потребление топлива, в килограммах
double? TotalConsumptionWeightKg
// Точки статистики
SpicAnalogSensorValuePoint[] Points
}
// Тип события заправок/сливов топлива
SpicFdStatisticsFuelEventType
{
string Value
}
Параметр Value может принимать следующие значения:
SpicFuelingDefuelingStatistics
{
// Начальный объем в литрах.
double? BeginFuelVolumeL
// Конечный объем в литрах.
double? EndFuelVolumeL
// Минимальный объем в литрах.
double? MinFuelVolumeL
// Максимальный объем в литрах.
double? MaxFuelVolumeL
// Объем заправок в литрах.
double? FuelingTotalVolumeL
// Объемом сливов в литрах.
double? DefuelingTotalVolumeL
// Общий расход топлива в литрах.
double? TotalFuelConsumptionL
// Количество заправок.
int FuelingCount
// Количество сливов.
int DefuelingCount
// Топливные события.
SpicFuelingDefuelingStatisticsEvent[] Events
}
SpicFuelingDefuelingStatisticsEvent
{
// Период происхождения события.
SpicDateTimeRange Period
// Период происхождения исходного события (для разделённых событий).
SpicDateTimeRange OriginalPeriod
// Время совершения события.
DateTime Timestamp
// Тип события.
SpicFdStatisticsFuelEventType EventType
// Начальный уровень топлива в литрах.
double BeginFuelVolumeL
// Конечный уровень топлива в литрах.
double EndFuelVolumeL
// Начальный уровень топлива в литрах для исходного события (для разделённых событий).
double? OriginalBeginFuelVolumeL
// Конечный уровень топлива в литрах для исходного события (для разделённых событий).
double? OriginalEndFuelVolumeL
// Место происхождения события.
SpicLocation Location
}
// Результат запроса статистик по заправкам и сливам топлива
SpicFuelingDefuelingStatisticsResult
{
// Информация о состоянии построения порции статистик
SpicStatisticsChunkInfo ChunkInfo
// Статистика. Если не получилось построить - null.
SpicFuelingDefuelingStatistics Statistics
}
// Статистика по режимам работы двигателя
SpicMotorModesStatistics
{
// Периоды режимов работы
SpicMotorPeriod[] Periods
// Время работы двигателя
TimeSpan EngineOnHours
// Суммарное время с выключенным двигателем
TimeSpan EngineOffHours
// Время активной работы двигателя
TimeSpan EngineActiveWorkHours
// Время работы на холостом ходу
TimeSpan EngineIdleHours
}
SpicMotorModesStatisticsResult
{
// Информация о состоянии построения порции статистик
SpicStatisticsChunkInfo ChunkInfo
// Статистика. Если не получилось построить - null.
SpicMotorModesStatistics Statistics
}
// Период работы двигателя
SpicMotorPeriod
{
// Тип периода
// Например, Активная работа, перевозка на трале
SpicMotorPeriodType TypeId
// Временные рамки периода
SpicDateTimeRange Period
// Состояние двигателя true - двигатель включен, false - иначе
bool IsIgnitionOn
// Состояние датчика активной работы, true - датчик активен, false - иначе
bool IsActiveWork
}
// Тип периода трека.
SpicMotorPeriodType
{
string Value
}
Параметр Value может принимать следующие значения:
// Статистика данных по навигации прошедших предварительную проверку.
SpicNavigationValidationStatistics
{
// Количество валидных точек
int ValidPointsCount
// Количество невалидных точек
int InvalidPointsCount
// Точки навигации
SpicNavigationPoint[] Points
}
// Результат построения статистики по валидации навигационных данных
SpicNavigationValidationStatisticsResult
{
// Информация о состоянии построения порции статистик
SpicStatisticsChunkInfo ChunkInfo
// Статистика. Если не получилось построить - null.
SpicNavigationValidationStatistics Statistics
}
// Запрос построения статистики по фильтрации навигационных данных
NavigationFiltrationStatisticsRequest
{
// Сессия статистик
SpicStatisticsSession Session
// Настройки построения статистики
SpicNavigationFiltrationStatisticsSettings Settings
}
// Координаты
SpicLocation
{
// Широта
double Latitude
// Долгота
double Longitude
}
//Навигация
SpicNavigation
{
// Координаты.
SpicLocation Location
// Высота в метрах
double? AltitudeMeters
// Курс (0 == North, 90 == East)
short? Angle
// Количество спутников
byte? SatellitesCount
// Скорость (Км/ч)
double? Speed
// Тип используемой навигационной системы (систем)
string NavigationSystemType
// Корректность навигационных данных (GPS Fix от терминала)
bool? HardwareValidation
}
Параметр NavigationSystemType может принимать следующие значения:
// Статистика по фильтрации навигационных данных
SpicNavigationFiltrationStatistics
{
// Точки навигации
SpicNavigationPoint[] Points
}
// Результат построения статистики по фильтрации навигационных данных
SpicNavigationFiltrationStatisticsResult
{
// Информация о состоянии построения порции статистик
SpicStatisticsChunkInfo ChunkInfo
// Статистика. Если не получилось построить - null.
SpicNavigationFiltrationStatistics Statistics
}
// Настройки построения статистики по фильтрации навигационных данных
SpicNavigationFiltrationStatisticsSettings
{
// Параметры фильтрации точек
SpicNavigationValidationFilter NavigationValidationFilter
// Параметры фильтрации отрезков пути
SpicTrackPeriodsFilter TrackPeriodsFilter
}
// Точка навигации
SpicNavigationPoint
{
// Момент получения данных
DateTime Timestamp
// Координаты
SpicNavigation Navigation
// Валидность навигационной точки
bool? IsNavigationValid
}
// Параметры фильтрации навигационных данных
SpicNavigationValidationFilter
{
// Исключить валидные точки
bool ExcludeValidPoints
// Исключить невалидные точки
bool ExcludeInvalidPoints
// Исключить точки, которые не получилось провалидировать
bool ExcludeNotValidatedPoints
}
// Параметры фильтрации отрезков пути
SpicTrackPeriodsFilter
{
// Исключить отскоки
bool ExcludeRecoilPoints
// Исключить точки остановок
bool ExcludeNotMovePoints
// Включить точки стоянок
bool IncludeParkingPoints
}
//Период движения
SpicTrackPeriod
{
// Тип периода.
// Например, движение или стоянка.
SpicTrackPeriodType Type
// Временные рамки периода.
// Периоды "стыкуются" без пропусков, т.е. время начала периода совпадает со временем
// завершения предыдущего периода.
SpicDateTimeRange Period
}
// Статистика по треку
SpicTrackPeriodsStatistics
{
// Периоды движения
SpicTrackPeriod[] Periods
// Отскоки
SpicTrackRecoil[] Recoils
}
// Результат построения статистики по треку
SpicTrackPeriodStatisticsResult
{
// Информация о состоянии построения порции статистик
SpicStatisticsChunkInfo ChunkInfo
// Статистика. Если не получилось построить - null.
SpicTrackPeriodsStatistics Statistics
}
// Тип периода трека.
SpicTrackPeriodType
{
string Value
}
Параметр Value может принимать следующие значения:
// Отскок
SpicTrackRecoil
{
// Период времени отскока
SpicDateTimeRange Period
}
SpicTrackPeriodMileage
{
// Тип периода.
// Например, движение или стоянка.
SpicTrackPeriodType Type
// Временные рамки периода.
// Периоды "стыкуются" без пропусков, т.е. время начала периода совпадает со временем
// завершения предыдущего периода.
SpicDateTimeRange Period
// Пробег в данном периоде.
// Вычисляется алгоритмом определения расстояния с учетом кривизны земли.
double? MileageKm
// Пробег в рабочее время, км
double? WorkTimeMileageKm
// Средняя скорость, км/ч
double? AverageSpeedKmh
// Минимальная скорость, км/ч
double? MinSpeedKmh
// Максимальная скорость, км/ч
double? MaxSpeedKmh
}
// Статистики трека с пробегом по каждому периоду.
SpicTrackPeriodsMileageStatistics
{
// Пробеги по периодам трэка.
SpicTrackPeriodMileage[] PeriodsMileage
// Общее время в движении.
TimeSpan MovementDuration
// Общее время на стоянках.
TimeSpan ParkingDuration
// Общее время в разрывах.
TimeSpan BreakDuration
// Общая продолжительность.
TimeSpan TotalDuration
// Пробег в движении, км.
double? MovementMileageKm
// Пробег в разрывах, км.
double? BreakMileageKm
// Общий пробег, км.
double? TotalMileageKm
// Пробег в рабочее время, км.
double? WorkTimeMileageKm
// Минимальная скорость, км/ч
double? MinSpeedKmh
// Максимальная скорость, км/ч
double? MaxSpeedKmh
}
// Результат построения статистики по треку с пробегом по каждому периоду
SpicTrackPeriodsMileageStatisticsResult
{
// Информация о состоянии построения порции статистик
SpicStatisticsChunkInfo ChunkInfo
// Статистика. Если не получилось построить - null.
SpicTrackPeriodsMileageStatistics Statistics
}
// Результат построения статистики по величине пробега, определённой по одометру
SpicOdometerStatisticsResult
{
// Пробег, км
double? MileageKm
// Сообщение об ошибке.
string Error;
}
в json будет полученный ответ будет выглядеть так:
{ MileageKm: 235.76, Error = null } или так { MileageKm: null, Error = “NoData” }
Из-за особенностей работы ПО (расчёта статистики с учётом нахлёста в 12 часов), запрашивать данные с использованием статистики SpicOdometerStatisticsResult можно только за сутки. В случае запроса статистики за более короткий промежуток, или в случае отсутствия данных, показания будут переданы с некорректным значением времени.
Например: При запросе с 09.03.2017 00:00 по 10.03.2017 00:00 данных не будет (терминал их ещё не выгрузил), но в базе найдётся значение например за 08.03.2017 17:00 равное 32000 км, оно и будет выдано, но со временем 09.03.2017 00:00.
Чтобы избежать потенциальных проблем и не получить такое значение, рекомендуем делать проверку, получая статистики по периодам движения и стоянок и формируя запрос по статистике Одометра только по уже выгруженным на сервер данным.
<<Назад К оглавлению Далее>>